home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / BorderItems.h < prev    next >
C/C++ Source or Header  |  1990-11-28  |  2KB  |  82 lines

  1. #ifndef BorderItems_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define BorderItems_First
  6.  
  7. #include "VObject.h"
  8. #include "CmdNo.h"
  9.  
  10. const int cBorderTitleGap= 4;
  11. const int cHTitleGap    = 10;
  12. const int cBorder       = 9,
  13.       cTitleGap     = 5;        // gap between titlebar and contents
  14.  
  15. //---- AbstractBorderItem ------------------------------------------------------
  16.  
  17. class AbstractBorderItem: public CompositeVObject {
  18. protected:
  19.     Point interiorOffset, extentDiff, border;
  20.     VObject *interior, *titleBar;
  21.     short lineWidth, titleGap, shadowWidth;
  22.     
  23. public:
  24.     MetaDef(AbstractBorderItem);
  25.     
  26.     AbstractBorderItem(VObject *title, VObject *inner, int lw= 1, int id= cIdNone);
  27.     AbstractBorderItem(char *title, VObject *inner, int lw= 1, int id= cIdNone);
  28.  
  29.     VObject* GetTitleBar()
  30.     { return titleBar; }
  31.     VObject *GetInterior()
  32.     { return interior; }
  33.     void SetInterior(VObject *invob)
  34.     { interior= invob; }
  35.     Point GetInteriorOffset()
  36.     { return interiorOffset; }
  37.     short GetShadowWidth()
  38.     { return shadowWidth; }
  39.     short GetLineWidth()
  40.     { return lineWidth; }
  41.     void SetShadowWidth(int sw)
  42.     { shadowWidth= sw; }
  43.     void SetLineWidth(int lw)
  44.     { lineWidth= lw; }
  45.     Point GetBorder()
  46.     { return border; }
  47.     void SetBorder(Point b)
  48.     { border= b; }
  49.  
  50.     void SetTitle(char *itsTitle, bool redraw);
  51.     char *GetTitle();
  52.     void SetOrigin(Point at);
  53.     void SetExtent(Point e);
  54.     Metric GetMinSize();
  55.     ostream& PrintOn (ostream&s);
  56.     istream& ReadFrom(istream &);
  57.     void InspectorId(char *buf, int sz);
  58. };
  59.  
  60. //---- BorderItem --------------------------------------------------------------
  61.  
  62. class BorderItem: public AbstractBorderItem {
  63.     VObjAlign titleAlign;
  64. public:
  65.     MetaDef(BorderItem);
  66.     BorderItem(VObject *inner, Point b= gBorder, int lw= 1, VObjAlign a= eVObjHLeft);
  67.     BorderItem(VObject *title, VObject *inner, Point b= gBorder, int lw= 1, VObjAlign a= eVObjHLeft);
  68.     BorderItem(char *title, VObject *inner, Point b= gBorder, int lw= 1, VObjAlign a= eVObjHLeft);
  69.     BorderItem(int id, char *title, VObject *inner, Point b= gBorder, int lw= 1, VObjAlign a= eVObjHLeft);
  70.  
  71.     void SetOrigin(Point at);
  72.     void SetExtent(Point e);
  73.     int Base();
  74.     Metric GetMinSize();
  75.     void Draw(Rectangle);
  76.     ostream& PrintOn(ostream&s);
  77.     istream& ReadFrom(istream &);
  78. };
  79.  
  80. #endif BorderItems_First
  81.  
  82.